package main

import (
	"fmt"
	"time"
)

/*
1、获取当前时间，格式化输出为 2020/06/19 20:30:05 格式。
2、获取当前时间，格式化输出为时间戳
3、把时间戳 1587880013 转换成日期字符串，格式为 2020/xx/xx xx:xx:xx
4、把日期字符串 2020/06/19 20:30:05 转换成时间戳
5、编写程序统计一段代码的执行耗时时间，单位精确到微秒。
*/
func main() {
	start := time.Now()
	now := time.Now()
	fmt.Println(now.Format("2020/06/19 20:30:05"))

	timestamp := now.Unix()
	fmt.Println(timestamp)

	nanoTimestamp := now.UnixNano()
	fmt.Println(nanoTimestamp)

	// 1587880013
	go unix2Time(1587880013)

	go time2Template("2020/06/19 20:30:05")

	elapsed := time.Since(start)
	fmt.Println(elapsed.Milliseconds())
}

func time2Template(t1 string) {

	// 指定时间格式的布局（必须使用 Go 的特定参考时间）
	layout := "2006/01/02 15:04:05"
	stamp, _ := time.ParseInLocation(layout, t1, time.Local)
	fmt.Println(stamp.Unix())
}

func unix2Time(timestamp int64) {
	timeObj := time.Unix(timestamp, 0)
	year := timeObj.Year()
	month := timeObj.Month()
	day := timeObj.Day()
	hour := timeObj.Hour()
	minute := timeObj.Minute()
	second := timeObj.Second()
	fmt.Printf("%02d:%02d:%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second)
}
